QUICKREPORT A MEMO
Otázka od: Ján Kuchár
23. 9. 2002 8:27
Caute,
v programu mam databazy textu, kterou jsou postupne naplnil pres komponentu
memo a ted potrebuju zabezepecit vypis techto jednotlivych textu jako
samostatne bloky na quickreport asi nasledovne :
M1 M2 M3
M4 M5 M6
M7 M8 M9
kde cisla M1-az xxx predsavuji prave ty jednotlive texty z mema o nekolika
radcich a o libovolne delce radku.
OTAZKY :
1 - jak zabezpecit prave to vypisovani za sebou
2 - co kdyz nebudu chtit zrusit zobrazeni napr. M3, jak posunout poradi tech
ostatnich memo pozic
Ing. Ján Kuchár PhD.
Ruská 14, Třebíč 674 01
e-mail : kuchar@unicodesys.cz
Odpovedá: Michal Sefcik
23. 9. 2002 12:33
> -----Original Message-----
> From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]On
> Behalf Of Ján Kuchár
> Sent: Monday, September 23, 2002 8:58 AM
> To: Delphi
> Subject: QUICKREPORT A MEMO
> OTAZKY :
> 1 - jak zabezpecit prave to vypisovani za sebou
> 2 - co kdyz nebudu chtit zrusit zobrazeni napr. M3, jak posunout poradi
tech
> ostatnich memo pozic
>
Ja resim vypis promenliveho poctu poznamek do 3 sloupcu generovanim
childbandu a qrmemo komponent na nich s pouzitim teto tridy:
type PMemoItem = ^TMemoItem;
TMemoItem = record
Band : TQRChildBand;
MA : array[1..3] of TQRMemo;
Next : PMemoItem;
end;
TMemoList = class
First : PMemoItem;
constructor Create;
destructor Destroy;
public
procedure Add(F : TForm);
end;
constructor TMemoList.Create;
begin
First := nil;
end;
destructor TMemoList.Destroy;
var pi : PMemoItem;
i : byte;
begin
while First <> nil do begin
pi := First;
First := First.next;
for i := 1 to 3 do
if pi.MA[i] <> nil then pi.MA[i].Free;
pi.Band.Free;
Dispose(pi);
end;
end;
procedure TMemoList.Add(F : TForm);
var pi, pn : PMemoItem;
i : byte;
begin
pi := First;
// najdi poslední
while (pi <> nil) and (pi.Next <> nil) do
pi := pi.Next;
if (pi = nil) or (pi.MA[3] <> nil) then begin
new(pn);
pn^.Band := TQRChildBand.Create(F);
pn^.Band.Parent := (F as TFP_Kons).QuickRep1;
pn^.Band.Height := 116;
for i := 1 to 3 do
pn^.MA[i] := nil;
pn^.Next := nil;
if pi = nil then begin
pn^.Band.ParentBand := (F as TFP_Kons).cb_Ostatni;
First := pn;
end else begin
pn^.Band.ParentBand := pi^.Band;
pi^.Next := pn;
end;
pi := pn;
end;
for i := 1 to 3 do
if pi^.MA[i] = nil then Break;
pi^.MA[i] := TQRMemo.Create(F);
pi^.MA[i].Parent := pi^.Band;
pi^.MA[i].Height := 113;
pi^.MA[i].Width := 235;
pi^.MA[i].Left := 5 + (i-1)*240;
pi^.MA[i].Top := 0;
pi^.MA[i].Font.Size := 8;
pi^.MA[i].Lines := (F as TFP_Kons).DBMemo.Lines;
end;
BeforePrint reportu vycreatuju tento seznam a naplnim jej pomoci metody Add;
v AfterPrint jej Destroynu. Kod urcite neni optimalni, nicmene je funkcni
************************************************************
Ing.Mgr. Michal Sefcik
Benefit CZ, s.r.o.
Hrubého 11, 612 00 Brno
tel: +420 5 41219098, 9
fax: +420 5 41215886
http: www.benefitcz.cz
************************************************************
Odpovedá: Lstiburek Pavel
23. 9. 2002 11:19
Kazdou dvojici memopolozek dej na samostatny band a zrus autosize
Pavel
> -----Původní zpráva-----
> Od: Karel Horky [mailto:horky.karel@quick.cz]
> Odesláno: 24. září 2002 12:28
> Komu: Ján Kuchár
> Předmět: Re: QUICKREPORT A MEMO
>
>
> Ján Kuchár, <mailto:kuchar@unicodesys.cz> napsal:
> > ted potrebuju zabezepecit vypis techto jednotlivych textu jako
> > samostatne bloky na quickreport asi nasledovne :
>
> > M1 M2 M3
> > M4 M5 M6
> > M7 M8 M9
>
> > kde cisla M1-az xxx predsavuji prave ty jednotlive texty z
> mema o nekolika
> > radcich a o libovolne delce radku.
>
> Kdysi jsem delal sestavy, ktere vypisovaly retezce konstantni delky do
> nekolika sloupcu (1 az 8), pocet sloupcu byl zavisly prave na delce
> retezcu. Bylo to dost huste. Proc si to komplikovat a nepsat
> to krasne jedno
> memo pod druhe ? Zvlast pokud kazde memo ma nekolik radku o libovolne
> delce.
>
> > 2 - co kdyz nebudu chtit zrusit zobrazeni napr. M3, jak
> posunout poradi tech
> > ostatnich memo pozic
>
> Pri vypisu pod sebe se tento problem vyresi sam .
> ------
> S pozdravem Karel Horky
> horky.karel@quick.cz
> W2K/SP2, D5Ent/UP1
>
Odpovedá: Martin Schayna
23. 9. 2002 15:38
----- Original Message -----
From: "Ján Kuchár" <kuchar@unicodesys.cz>
> v programu mam databazy textu, kterou jsou postupne naplnil pres komponentu
> memo a ted potrebuju zabezepecit vypis techto jednotlivych textu jako
> samostatne bloky na quickreport asi nasledovne :
>
> M1 M2 M3
> M4 M5 M6
> M7 M8 M9
Neco podobneho jsme si do QR dodelali sami, nejsou to sice rozepsane radky
mema ale primo radky subdetailu -- na subdetail jsme si doplnili vlastnost
kterou
zapiname sloupcovy tisk a pocet sloupcu. Tiskneme takto napr. seriova cisla na
doklady apod. Nebylo to snadne ale je to mozne.
Je zajimave, ze tuto vlastnost vetsina generatoru sestav nepodporuje...
Martin Schayna
Odpovedá: Karel Horky
23. 9. 2002 13:04
Ján Kuchár, <mailto:kuchar@unicodesys.cz> napsal:
> ted potrebuju zabezepecit vypis techto jednotlivych textu jako
> samostatne bloky na quickreport asi nasledovne :
> M1 M2 M3
> M4 M5 M6
> M7 M8 M9
> kde cisla M1-az xxx predsavuji prave ty jednotlive texty z mema o nekolika
> radcich a o libovolne delce radku.
Kdysi jsem delal sestavy, ktere vypisovaly retezce konstantni delky do
nekolika sloupcu (1 az 8), pocet sloupcu byl zavisly prave na delce
retezcu. Bylo to dost huste. Proc si to komplikovat a nepsat to krasne jedno
memo pod druhe ? Zvlast pokud kazde memo ma nekolik radku o libovolne
delce.
> 2 - co kdyz nebudu chtit zrusit zobrazeni napr. M3, jak posunout poradi tech
> ostatnich memo pozic
Pri vypisu pod sebe se tento problem vyresi sam .
------
S pozdravem Karel Horky
horky.karel@quick.cz
W2K/SP2, D5Ent/UP1